Highcharts একটি শক্তিশালী ডেটা ভিজ্যুয়ালাইজেশন টুল হলেও, যখন ডেটাসেট বড় হতে থাকে বা অনেক সিরিজ/পয়েন্ট থাকে, তখন চার্টের পারফরম্যান্সে প্রভাব ফেলতে পারে। তবে কিছু টেকনিক ব্যবহার করে Highcharts এর পারফরম্যান্স অপ্টিমাইজ করা সম্ভব, যা চার্টের রেন্ডারিং সময় কমিয়ে এবং অ্যাপ্লিকেশনকে আরও দ্রুততর ও প্রতিক্রিয়াশীল করে তোলে।
এখানে Highcharts এর পারফরম্যান্স অপ্টিমাইজেশন করার জন্য কিছু গুরুত্বপূর্ণ টেকনিক দেওয়া হলো:
Highcharts অনেক ডেটা পয়েন্ট সাপোর্ট করে, তবে যখন বড় ডেটাসেট থাকে তখন সার্বিক পারফরম্যান্স কমে যেতে পারে। ডেটা কম্প্রেশন করে পারফরম্যান্স বাড়ানো সম্ভব।
dataGrouping
ব্যবহার করা: Highcharts এ dataGrouping ফিচার ব্যবহার করে ডেটাকে গ্রুপ করা যেতে পারে যাতে চার্টে প্রদর্শিত পয়েন্টের সংখ্যা কমে যায়।
উদাহরণ:
series: [{
name: 'Sales',
data: [1, 3, 2, 4, 5, 6, 7, 8],
dataGrouping: {
approximation: 'average', // ডেটার গড় মান নিয়ে গ্রুপিং
enabled: true,
groupPixelWidth: 20 // পয়েন্টের গাঢ়তা বা কম্প্রেশন
}
}]
এই পদ্ধতি দিয়ে আপনি বড় ডেটাসেট থেকে নির্দিষ্ট পরিমাণ ডেটা পয়েন্টের গড় বা অন্য কোনো মাপ নিয়ে গ্রুপিং করতে পারেন।
boost
মডিউল ব্যবহার করাHighcharts এ যখন অনেক ডেটা পয়েন্ট থাকে, তখন পারফরম্যান্সের জন্য Boost Module ব্যবহার করা যেতে পারে। এটি বড় ডেটাসেট রেন্ডার করার সময় GPU (গ্রাফিক্স প্রসেসিং ইউনিট) এর সাহায্যে চার্টের রেন্ডারিং অপ্টিমাইজ করে। এই মডিউলটি সেকেন্ডের মধ্যে লাখো ডেটা পয়েন্ট রেন্ডার করতে সাহায্য করে।
Boost Module ব্যবহার:
প্রথমে Boost মডিউলটি আপনার প্রজেক্টে অন্তর্ভুক্ত করুন:
<script src="https://code.highcharts.com/modules/boost.js"></script>
তারপর, Boost মডিউলটি ব্যবহার করতে, সিরিজে boostThreshold
সেট করতে হবে:
series: [{
name: 'Sales',
data: generateLargeDataSet(), // বড় ডেটাসেট
boostThreshold: 1000 // এখানে 1000 পয়েন্টের বেশি হলে Boost সক্রিয় হবে
}]
boostThreshold
নির্ধারণ করবে, কোন ডেটাসেট সাইজের পর Boost সক্রিয় হবে।
turboThreshold
সেট করাHighcharts এ turboThreshold
প্যারামিটারটি খুবই গুরুত্বপূর্ণ যখন অনেক ডেটা পয়েন্ট থাকে। এর মাধ্যমে আপনি চার্টের জন্য কত পয়েন্ট একসাথে প্রক্রিয়া করা হবে তা নির্ধারণ করতে পারেন। যখন ডেটাসেট অনেক বড় হয়, তখন turboThreshold এর মান বাড়ানো হয় যাতে Highcharts শুধু প্রাসঙ্গিক ডেটা পয়েন্টগুলিই রেন্ডার করে।
turboThreshold
ব্যবহার করা:
series: [{
name: 'Sales',
data: generateLargeDataSet(), // বড় ডেটাসেট
turboThreshold: 5000 // 5000 পয়েন্টের বেশি হলে Turbo Mode সক্রিয় হবে
}]
এটি সাধারণত লাখো ডেটা পয়েন্ট রেন্ডার করার জন্য ব্যবহৃত হয়।
enableMouseTracking
বন্ধ করাHighcharts এ mouseTracking
ব্যবহারকারীর মাউস পয়েন্টের উপর মুভ করার সময় অতিরিক্ত ইনফরমেশন প্রদর্শন করে (যেমন টুলটিপ)। তবে অনেক ডেটা পয়েন্ট হলে এটি পারফরম্যান্সে প্রভাব ফেলতে পারে। যদি আপনি টুলটিপ বা মাউস ট্র্যাকিং অপ্রয়োজনীয় মনে করেন, তাহলে এটি বন্ধ করে পারফরম্যান্স বাড়ানো যেতে পারে।
enableMouseTracking
বন্ধ করা:
series: [{
name: 'Sales',
data: generateLargeDataSet(),
enableMouseTracking: false // মাউস ট্র্যাকিং বন্ধ করা
}]
এই ফিচারটি টুলটিপ এবং অন্যান্য মাউস ইভেন্ট থেকে পরিহার করে, যার ফলে রেন্ডারিং দ্রুত হয়।
animation
বন্ধ করাHighcharts এ অ্যানিমেশন প্রয়োগ করা হয় যখন নতুন ডেটা লোড করা হয় বা চার্ট রেন্ডার করা হয়। তবে অ্যানিমেশন বড় ডেটাসেটে রেন্ডারিং সময় বাড়িয়ে দিতে পারে। আপনি যদি অ্যানিমেশন প্রয়োজন না মনে করেন, তবে এটি বন্ধ করতে পারেন।
animation
বন্ধ করা:
chart: {
animation: false // অ্যানিমেশন বন্ধ করা
}
এটি ডেটা রেন্ডারিংকে দ্রুত করে।
spline
এবং অন্যান্য সিরিজ টাইপ পরিবর্তন করাযখন খুব বড় ডেটাসেট থাকে, তখন spline বা line টাইপের চার্টের পরিবর্তে scatter বা column টাইপের চার্ট ব্যবহার করলে পারফরম্যান্স উন্নত হতে পারে। বিশেষ করে যখন লাইন চার্টে অনেক পয়েন্ট থাকে, তখন তা রেন্ডার করতে বেশি সময় নেয়।
spline
এর পরিবর্তে line
ব্যবহার:
series: [{
type: 'line', // Spline এর পরিবর্তে Line টাইপ
data: generateLargeDataSet()
}]
এটি চার্টের পারফরম্যান্স বাড়াতে সাহায্য করে, কারণ spline এর জন্য Highcharts অনেক বেশি ডেটা পয়েন্ট রেন্ডার করতে হয়।
redraw
কন্ট্রোল করাHighcharts এ redraw
ফাংশনটি চার্ট রেন্ডারিং প্রক্রিয়ায় পরিবর্তন আনতে ব্যবহৃত হয়। খুব বড় ডেটাসেটে, প্রতিটি পরিবর্তনের পর চার্ট পুনরায় রেন্ডার করা পারফরম্যান্সকে প্রভাবিত করতে পারে। আপনি redraw
কার্যকলাপ কন্ট্রোল করতে পারেন।
redraw
বন্ধ করা:
chart: {
events: {
load: function () {
this.series[0].setData(generateLargeDataSet(), false); // redraw false
this.redraw();
}
}
}
এটি চার্টের পুনরায় রেন্ডারিংয়ের সময় নিয়ন্ত্রণ করে, যা পারফরম্যান্সে উন্নতি সাধন করে।
Highcharts এর পারফরম্যান্স অপ্টিমাইজেশন টেকনিকগুলো ব্যবহার করে আপনি ডেটা ভিজ্যুয়ালাইজেশন রেন্ডারিং সময় কমাতে পারেন এবং বড় ডেটাসেট বা অনেক সিরিজ/পয়েন্টের সাথে কাজ করা সহজ করতে পারেন। Boost Module, turboThreshold, dataGrouping, animation নিষ্ক্রিয় করা, এবং অন্যান্য টেকনিকগুলি ব্যবহার করে আপনি আপনার অ্যাপ্লিকেশনটির পারফরম্যান্স বৃদ্ধি করতে পারবেন।